
import proteinDataUp from '/src/static/analysisData/protein_limma_Up.json';
import proteinDataNo from '/src/static/analysisData/protein_limma_No.json';
import proteinDataDown from '/src/static/analysisData/protein_limma_Down.json';
import { createScatterSeries, formatDecimal } from './utils';


const proteinLimmaOption = {
    tooltip: {
        trigger: 'item',
        formatter: function (params: { value: string[]; }) {
            const drugNames = params.value[13];
            const maxLength = 30; // 设置最大长度
            const truncatedDrugNames = drugNames.length > maxLength ? drugNames.substring(0, maxLength) + '...' : drugNames;
            
            return 'Protein: ' + params.value[3] +
                '<br>TumorType: ' + params.value[4] + 
                '<br>P.Value_Single: ' + formatDecimal('', '', params.value[5]) +
                '<br>P.Value_Pancancer: ' + formatDecimal('', '', params.value[6]) +
                '<br>logFC_Single: ' + formatDecimal('', '', params.value[7]) +
                '<br>logFC_Pancancer: ' + formatDecimal('', '', params.value[8]) +   
                '<br>Target Genes: ' + params.value[9] +
                '<br>Drug Name:' + truncatedDrugNames ;
        }
    },
    xAxis: {
        type: 'value',
        name: 'p−value (most significant tumor type)',
        nameLocation: 'middle',
        nameTextStyle: {
            padding: [5, 0, 0, 0],
            fontSize: 24,
            color: 'black',
            align: 'center',
        },
        splitLine: {
            show: false  // 隐藏 x 轴的网格线
        },
        axisLabel: {
            formatter: function (value:any) {
              // Apply inverse transformation for display
              let transformedValue = Math.pow(10, -value); // 加上的数值为坐标轴平移的数值
              if (value == 0.1) {
                return 1
              } else if (transformedValue < 1e-3) {
                return transformedValue.toExponential(1); // 保留两位小数的科学计数法
              } else {
                return transformedValue;
              }
            },
            customValues: [0, 1, 2, 3, 4, 5, 6]
        },
        axisLine: {
            show: true,
            lineStyle: {
                color: 'black', // 设置坐标轴颜色
                width: 2 // 设置坐标轴宽度
            }
        },
    },
    yAxis: {
        type: 'value',
        name: 'p−value (Pancancer cohort)',
        nameLocation: 'middle',
        nameTextStyle: {
            padding: [5, 0, 35, 0],
            fontSize: 24,
            color: 'black',
            align: 'center',
        },
        splitLine: {
            show: false  // 隐藏 x 轴的网格线
        },
        axisLabel: {
            formatter: function (value:any) {
              // Apply inverse transformation for display
              let transformedValue = Math.pow(10, -value + 0.5) // 加上的数值为坐标轴平移的数值
              if (transformedValue < 1e-4) {
                return transformedValue.toExponential(1); // 保留两位小数的科学计数法
              }
              return transformedValue > 1e-4 ? transformedValue : 0;
            },
            customValues: [0.5, 1.5, 2.5, 3.5, 4.5]
        },
        axisLine: {
            show: true,
            lineStyle: {
                color: 'black', // 设置坐标轴颜色
                width: 2 // 设置坐标轴宽度
            }
        },
        min: 0,
        max: 5,
        interval: 0.5,
        // boundaryGap: [0.01, 0],
    },
    legend: {
        data: ['Up', 'Down', 'No'],  // 图例名称
        orient: 'vertical',
        left: 'right',       // 放置在容器的右侧
        top: 'middle',       // 垂直居中
        align: 'left'  
    },
    color: ['#E41A1C', '#377EB8', '#BFBFBF'],
    series: [
        createScatterSeries(proteinDataDown, 'Down', 'Down', '#377EB8', 'protein', false),
        createScatterSeries(proteinDataUp, 'Up', 'Up', '#E41A1C', 'protein', false),
        createScatterSeries(proteinDataNo, 'No', 'No', '#BFBFBF', 'protein', false)
    ]
};

export default proteinLimmaOption